#ifndef INCLUDED_haxe_Int64
#define INCLUDED_haxe_Int64

#ifndef HXCPP_H
#include <hxcpp.h>
#endif

#ifndef INCLUDED_cpp_CppInt32__
#include <cpp/CppInt32__.h>
#endif
HX_DECLARE_CLASS1(haxe,Int64)
namespace haxe{


class Int64_obj : public hx::Object{
	public:
		typedef hx::Object super;
		typedef Int64_obj OBJ_;
		Int64_obj();
		Void __construct(::cpp::CppInt32__ high,::cpp::CppInt32__ low);

	public:
		static hx::ObjectPtr< Int64_obj > __new(::cpp::CppInt32__ high,::cpp::CppInt32__ low);
		static Dynamic __CreateEmpty();
		static Dynamic __Create(hx::DynamicArray inArgs);
		~Int64_obj();

		HX_DO_RTTI;
		static void __boot();
		static void __register();
		void __Mark(HX_MARK_PARAMS);
		void __Visit(HX_VISIT_PARAMS);
		::String __ToString() const { return HX_CSTRING("Int64"); }

		::cpp::CppInt32__ high; /* REM */ 
		::cpp::CppInt32__ low; /* REM */ 
		virtual ::String toString( );
		Dynamic toString_dyn();

		static ::haxe::Int64 make( ::cpp::CppInt32__ high,::cpp::CppInt32__ low);
		static Dynamic make_dyn();

		static ::haxe::Int64 ofInt( int x);
		static Dynamic ofInt_dyn();

		static ::haxe::Int64 ofInt32( ::cpp::CppInt32__ x);
		static Dynamic ofInt32_dyn();

		static int toInt( ::haxe::Int64 x);
		static Dynamic toInt_dyn();

		static ::cpp::CppInt32__ getLow( ::haxe::Int64 x);
		static Dynamic getLow_dyn();

		static ::cpp::CppInt32__ getHigh( ::haxe::Int64 x);
		static Dynamic getHigh_dyn();

		static ::haxe::Int64 add( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic add_dyn();

		static ::haxe::Int64 sub( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic sub_dyn();

		static ::haxe::Int64 mul( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic mul_dyn();

		static Dynamic divMod( ::haxe::Int64 modulus,::haxe::Int64 divisor);
		static Dynamic divMod_dyn();

		static ::haxe::Int64 div( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic div_dyn();

		static ::haxe::Int64 mod( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic mod_dyn();

		static ::haxe::Int64 shl( ::haxe::Int64 a,int b);
		static Dynamic shl_dyn();

		static ::haxe::Int64 shr( ::haxe::Int64 a,int b);
		static Dynamic shr_dyn();

		static ::haxe::Int64 ushr( ::haxe::Int64 a,int b);
		static Dynamic ushr_dyn();

		static ::haxe::Int64 _and( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic _and_dyn();

		static ::haxe::Int64 _or( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic _or_dyn();

		static ::haxe::Int64 _xor( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic _xor_dyn();

		static ::haxe::Int64 neg( ::haxe::Int64 a);
		static Dynamic neg_dyn();

		static bool isNeg( ::haxe::Int64 a);
		static Dynamic isNeg_dyn();

		static bool isZero( ::haxe::Int64 a);
		static Dynamic isZero_dyn();

		static int compare( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic compare_dyn();

		static int ucompare( ::haxe::Int64 a,::haxe::Int64 b);
		static Dynamic ucompare_dyn();

		static ::String toStr( ::haxe::Int64 a);
		static Dynamic toStr_dyn();

};

} // end namespace haxe

#endif /* INCLUDED_haxe_Int64 */ 
